#!/bin/bash

# 性能报告分析脚本
# 功能：分析和比较多个性能报告，识别性能趋势和异常
# 作者：Xiao Ru An
# 日期：$(date +"%Y-%m-%d")

# 设置颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # 无颜色

# 定义报告目录
REPORT_DIR="./performance_reports"
ANALYSIS_FILE="./performance_analysis_summary.txt"

# 检查报告目录是否存在
if [ ! -d "$REPORT_DIR" ]; then
    echo -e "${RED}错误: 报告目录 '$REPORT_DIR' 不存在。${NC}"
    echo -e "请先运行系统性能分析脚本生成报告。"
    exit 1
fi

# 获取报告文件列表
REPORT_FILES=($(ls -t "$REPORT_DIR"/performance_report_*.txt 2>/dev/null))
REPORT_COUNT=${#REPORT_FILES[@]}

if [ $REPORT_COUNT -eq 0 ]; then
    echo -e "${RED}错误: 未找到性能报告文件。${NC}"
    echo -e "请先运行系统性能分析脚本生成报告。"
    exit 1
fi

echo -e "${BLUE}===== 性能报告分析 =====${NC}"
echo -e "找到 $REPORT_COUNT 个性能报告文件。"

# 创建分析摘要文件
echo "===== 性能报告分析摘要 =====" > "$ANALYSIS_FILE"
echo "生成时间: $(date)" >> "$ANALYSIS_FILE"
echo "分析的报告数量: $REPORT_COUNT" >> "$ANALYSIS_FILE"
echo "" >> "$ANALYSIS_FILE"

# 提取报告中的CPU使用率
extract_cpu_usage() {
    local file=$1
    grep -A 1 "CPU使用率:" "$file" | tail -1 | awk '{print $2}' | tr -d '%'
}

# 提取报告中的内存使用率
extract_mem_usage() {
    local file=$1
    # 修复：正确提取内存使用率的百分比值
    grep -A 1 "已用内存:" "$file" | tail -1 | awk '{print $4}' | tr -d '()%'
}

# 提取报告中的磁盘使用率
extract_disk_usage() {
    local file=$1
    grep -A 1 "根分区使用率" "$file" | grep -o '[0-9]\+%' | head -1 | tr -d '%'
}

# 提取报告中的I/O等待时间
extract_io_wait() {
    local file=$1
    # 修复：确保正确提取I/O等待时间，并处理可能的非数值情况
    local io_wait=$(grep -A 1 "CPU I/O等待:" "$file" | tail -1 | awk '{print $3}' | tr -d '%')
    # 检查提取的值是否为有效数字，如果不是则返回0
    if [[ $io_wait =~ ^[0-9]+\.?[0-9]*$ ]]; then
        echo "$io_wait"
    else
        echo "0"
    fi
}

# 提取报告中的系统负载
extract_load_avg() {
    local file=$1
    local load_avg=$(grep -A 1 "系统负载:" "$file" | tail -1 | awk '{print $2}')
    # 检查提取的值是否为有效数字，如果不是则返回0
    if [[ $load_avg =~ ^[0-9]+\.?[0-9]*$ ]]; then
        echo "$load_avg"
    else
        echo "0"
    fi
}

# 分析CPU使用率趋势
analyze_cpu_trend() {
    echo -e "\n${BLUE}CPU使用率趋势分析:${NC}"
    echo "\nCPU使用率趋势分析:" >> "$ANALYSIS_FILE"
    
    local cpu_values=()
    local timestamps=()
    local i=0
    
    for file in "${REPORT_FILES[@]}"; do
        local timestamp=$(echo "$file" | grep -o '[0-9]\{8\}_[0-9]\{6\}')
        local formatted_time=$(date -d "${timestamp:0:8} ${timestamp:9:2}:${timestamp:11:2}:${timestamp:13:2}" "+%Y-%m-%d %H:%M:%S" 2>/dev/null || echo "$timestamp")
        local cpu_usage=$(extract_cpu_usage "$file")
        
        if [ -n "$cpu_usage" ]; then
            cpu_values[$i]=$cpu_usage
            timestamps[$i]=$formatted_time
            i=$((i+1))
        fi
    done
    
    # 打印CPU使用率趋势
    echo -e "时间戳\t\tCPU使用率(%)"
    echo "时间戳\t\tCPU使用率(%)" >> "$ANALYSIS_FILE"
    
    for ((j=0; j<i; j++)); do
        echo -e "${timestamps[$j]}\t${cpu_values[$j]}"
        echo "${timestamps[$j]}\t${cpu_values[$j]}" >> "$ANALYSIS_FILE"
    done
    
    # 计算平均值和最大值
    local sum=0
    local max=0
    local max_time=""
    
    for ((j=0; j<i; j++)); do
        # 修复：确保值是有效数字再进行计算
        if [[ ${cpu_values[$j]} =~ ^[0-9]+\.?[0-9]*$ ]]; then
            sum=$(echo "$sum + ${cpu_values[$j]}" | bc 2>/dev/null || echo "$sum")
            if (( $(echo "${cpu_values[$j]} > $max" | bc -l 2>/dev/null || echo "0") )); then
                max=${cpu_values[$j]}
                max_time=${timestamps[$j]}
            fi
        fi
    done
    
    # 修复：确保i不为0以避免除零错误
    if [ $i -gt 0 ]; then
        local avg=$(echo "scale=2; $sum / $i" | bc 2>/dev/null || echo "0")
    else
        local avg=0
    fi
    
    echo -e "\n平均CPU使用率: ${avg}%"
    echo -e "最高CPU使用率: ${max}% (${max_time})"
    
    echo "\n平均CPU使用率: ${avg}%" >> "$ANALYSIS_FILE"
    echo "最高CPU使用率: ${max}% (${max_time})" >> "$ANALYSIS_FILE"
    
    # 分析CPU使用率趋势
    if (( $(echo "$max > 90" | bc -l 2>/dev/null || echo "0") )); then
        echo -e "${RED}警告: 检测到CPU使用率峰值超过90%，可能存在严重的CPU瓶颈。${NC}"
        echo "警告: 检测到CPU使用率峰值超过90%，可能存在严重的CPU瓶颈。" >> "$ANALYSIS_FILE"
    elif (( $(echo "$avg > 70" | bc -l 2>/dev/null || echo "0") )); then
        echo -e "${YELLOW}警告: 平均CPU使用率超过70%，系统CPU负载较高。${NC}"
        echo "警告: 平均CPU使用率超过70%，系统CPU负载较高。" >> "$ANALYSIS_FILE"
    else
        echo -e "${GREEN}正常: CPU使用率在正常范围内。${NC}"
        echo "正常: CPU使用率在正常范围内。" >> "$ANALYSIS_FILE"
    fi
}

# 分析内存使用率趋势
analyze_mem_trend() {
    echo -e "\n${BLUE}内存使用率趋势分析:${NC}"
    echo "\n内存使用率趋势分析:" >> "$ANALYSIS_FILE"
    
    local mem_values=()
    local timestamps=()
    local i=0
    
    for file in "${REPORT_FILES[@]}"; do
        local timestamp=$(echo "$file" | grep -o '[0-9]\{8\}_[0-9]\{6\}')
        local formatted_time=$(date -d "${timestamp:0:8} ${timestamp:9:2}:${timestamp:11:2}:${timestamp:13:2}" "+%Y-%m-%d %H:%M:%S" 2>/dev/null || echo "$timestamp")
        local mem_usage=$(extract_mem_usage "$file")
        
        if [ -n "$mem_usage" ]; then
            mem_values[$i]=$mem_usage
            timestamps[$i]=$formatted_time
            i=$((i+1))
        fi
    done
    
    # 打印内存使用率趋势
    echo -e "时间戳\t\t内存使用率(%)"
    echo "时间戳\t\t内存使用率(%)" >> "$ANALYSIS_FILE"
    
    for ((j=0; j<i; j++)); do
        echo -e "${timestamps[$j]}\t${mem_values[$j]}"
        echo "${timestamps[$j]}\t${mem_values[$j]}" >> "$ANALYSIS_FILE"
    done
    
    # 计算平均值和最大值
    local sum=0
    local max=0
    local max_time=""
    
    for ((j=0; j<i; j++)); do
        # 修复：确保值是有效数字再进行计算
        if [[ ${mem_values[$j]} =~ ^[0-9]+\.?[0-9]*$ ]]; then
            sum=$(echo "$sum + ${mem_values[$j]}" | bc 2>/dev/null || echo "$sum")
            if (( $(echo "${mem_values[$j]} > $max" | bc -l 2>/dev/null || echo "0") )); then
                max=${mem_values[$j]}
                max_time=${timestamps[$j]}
            fi
        fi
    done
    
    # 修复：确保i不为0以避免除零错误
    if [ $i -gt 0 ]; then
        local avg=$(echo "scale=2; $sum / $i" | bc 2>/dev/null || echo "0")
    else
        local avg=0
    fi
    
    echo -e "\n平均内存使用率: ${avg}%"
    echo -e "最高内存使用率: ${max}% (${max_time})"
    
    echo "\n平均内存使用率: ${avg}%" >> "$ANALYSIS_FILE"
    echo "最高内存使用率: ${max}% (${max_time})" >> "$ANALYSIS_FILE"
    
    # 分析内存使用率趋势
    if (( $(echo "$max > 90" | bc -l 2>/dev/null || echo "0") )); then
        echo -e "${RED}警告: 检测到内存使用率峰值超过90%，可能存在严重的内存瓶颈。${NC}"
        echo "警告: 检测到内存使用率峰值超过90%，可能存在严重的内存瓶颈。" >> "$ANALYSIS_FILE"
    elif (( $(echo "$avg > 80" | bc -l 2>/dev/null || echo "0") )); then
        echo -e "${YELLOW}警告: 平均内存使用率超过80%，系统内存压力较大。${NC}"
        echo "警告: 平均内存使用率超过80%，系统内存压力较大。" >> "$ANALYSIS_FILE"
    else
        echo -e "${GREEN}正常: 内存使用率在正常范围内。${NC}"
        echo "正常: 内存使用率在正常范围内。" >> "$ANALYSIS_FILE"
    fi
}

# 分析磁盘使用率趋势
analyze_disk_trend() {
    echo -e "\n${BLUE}磁盘使用率趋势分析:${NC}"
    echo "\n磁盘使用率趋势分析:" >> "$ANALYSIS_FILE"
    
    local disk_values=()
    local timestamps=()
    local i=0
    
    for file in "${REPORT_FILES[@]}"; do
        local timestamp=$(echo "$file" | grep -o '[0-9]\{8\}_[0-9]\{6\}')
        local formatted_time=$(date -d "${timestamp:0:8} ${timestamp:9:2}:${timestamp:11:2}:${timestamp:13:2}" "+%Y-%m-%d %H:%M:%S" 2>/dev/null || echo "$timestamp")
        local disk_usage=$(extract_disk_usage "$file")
        
        if [ -n "$disk_usage" ]; then
            disk_values[$i]=$disk_usage
            timestamps[$i]=$formatted_time
            i=$((i+1))
        fi
    done
    
    # 打印磁盘使用率趋势
    echo -e "时间戳\t\t磁盘使用率(%)"
    echo "时间戳\t\t磁盘使用率(%)" >> "$ANALYSIS_FILE"
    
    for ((j=0; j<i; j++)); do
        echo -e "${timestamps[$j]}\t${disk_values[$j]}"
        echo "${timestamps[$j]}\t${disk_values[$j]}" >> "$ANALYSIS_FILE"
    done
    
    # 计算平均值和最大值
    local sum=0
    local max=0
    local max_time=""
    
    for ((j=0; j<i; j++)); do
        sum=$(echo "$sum + ${disk_values[$j]}" | bc)
        if (( $(echo "${disk_values[$j]} > $max" | bc -l) )); then
            max=${disk_values[$j]}
            max_time=${timestamps[$j]}
        fi
    done
    
    local avg=$(echo "scale=2; $sum / $i" | bc)
    
    echo -e "\n平均磁盘使用率: ${avg}%"
    echo -e "最高磁盘使用率: ${max}% (${max_time})"
    
    echo "\n平均磁盘使用率: ${avg}%" >> "$ANALYSIS_FILE"
    echo "最高磁盘使用率: ${max}% (${max_time})" >> "$ANALYSIS_FILE"
    
    # 分析磁盘使用率趋势
    if (( $(echo "$max > 90" | bc -l) )); then
        echo -e "${RED}警告: 检测到磁盘使用率峰值超过90%，磁盘空间几乎耗尽。${NC}"
        echo "警告: 检测到磁盘使用率峰值超过90%，磁盘空间几乎耗尽。" >> "$ANALYSIS_FILE"
    elif (( $(echo "$avg > 80" | bc -l) )); then
        echo -e "${YELLOW}警告: 平均磁盘使用率超过80%，磁盘空间压力较大。${NC}"
        echo "警告: 平均磁盘使用率超过80%，磁盘空间压力较大。" >> "$ANALYSIS_FILE"
    else
        echo -e "${GREEN}正常: 磁盘使用率在正常范围内。${NC}"
        echo "正常: 磁盘使用率在正常范围内。" >> "$ANALYSIS_FILE"
    fi
    
    # 分析磁盘使用率增长趋势
    if [ $i -gt 1 ]; then
        local first=${disk_values[$((i-1))]}
        local last=${disk_values[0]}
        local diff=$(echo "$last - $first" | bc)
        
        if (( $(echo "$diff > 5" | bc -l) )); then
            echo -e "${YELLOW}警告: 磁盘使用率呈上升趋势，增长了 ${diff}%。${NC}"
            echo "警告: 磁盘使用率呈上升趋势，增长了 ${diff}%。" >> "$ANALYSIS_FILE"
        elif (( $(echo "$diff < 0" | bc -l) )); then
            echo -e "${GREEN}正常: 磁盘使用率呈下降趋势，减少了 $(echo "$diff * -1" | bc)%。${NC}"
            echo "正常: 磁盘使用率呈下降趋势，减少了 $(echo "$diff * -1" | bc)%。" >> "$ANALYSIS_FILE"
        else
            echo -e "${GREEN}正常: 磁盘使用率保持稳定。${NC}"
            echo "正常: 磁盘使用率保持稳定。" >> "$ANALYSIS_FILE"
        fi
    fi
}

# 分析I/O等待时间趋势
analyze_io_wait_trend() {
    echo -e "\n${BLUE}I/O等待时间趋势分析:${NC}"
    echo "\nI/O等待时间趋势分析:" >> "$ANALYSIS_FILE"
    
    local io_values=()
    local timestamps=()
    local i=0
    
    for file in "${REPORT_FILES[@]}"; do
        local timestamp=$(echo "$file" | grep -o '[0-9]\{8\}_[0-9]\{6\}')
        local formatted_time=$(date -d "${timestamp:0:8} ${timestamp:9:2}:${timestamp:11:2}:${timestamp:13:2}" "+%Y-%m-%d %H:%M:%S" 2>/dev/null || echo "$timestamp")
        local io_wait=$(extract_io_wait "$file")
        
        if [ -n "$io_wait" ]; then
            io_values[$i]=$io_wait
            timestamps[$i]=$formatted_time
            i=$((i+1))
        fi
    done
    
    # 打印I/O等待时间趋势
    echo -e "时间戳\t\tI/O等待时间(%)"
    echo "时间戳\t\tI/O等待时间(%)" >> "$ANALYSIS_FILE"
    
    for ((j=0; j<i; j++)); do
        echo -e "${timestamps[$j]}\t${io_values[$j]}"
        echo "${timestamps[$j]}\t${io_values[$j]}" >> "$ANALYSIS_FILE"
    done
    
    # 计算平均值和最大值
    local sum=0
    local max=0
    local max_time=""
    
    for ((j=0; j<i; j++)); do
        sum=$(echo "$sum + ${io_values[$j]}" | bc)
        if (( $(echo "${io_values[$j]} > $max" | bc -l) )); then
            max=${io_values[$j]}
            max_time=${timestamps[$j]}
        fi
    done
    
    local avg=$(echo "scale=2; $sum / $i" | bc)
    
    echo -e "\n平均I/O等待时间: ${avg}%"
    echo -e "最高I/O等待时间: ${max}% (${max_time})"
    
    echo "\n平均I/O等待时间: ${avg}%" >> "$ANALYSIS_FILE"
    echo "最高I/O等待时间: ${max}% (${max_time})" >> "$ANALYSIS_FILE"
    
    # 分析I/O等待时间趋势
    if (( $(echo "$max > 20" | bc -l) )); then
        echo -e "${RED}警告: 检测到I/O等待时间峰值超过20%，可能存在严重的磁盘I/O瓶颈。${NC}"
        echo "警告: 检测到I/O等待时间峰值超过20%，可能存在严重的磁盘I/O瓶颈。" >> "$ANALYSIS_FILE"
    elif (( $(echo "$avg > 10" | bc -l) )); then
        echo -e "${YELLOW}警告: 平均I/O等待时间超过10%，系统磁盘I/O压力较大。${NC}"
        echo "警告: 平均I/O等待时间超过10%，系统磁盘I/O压力较大。" >> "$ANALYSIS_FILE"
    else
        echo -e "${GREEN}正常: I/O等待时间在正常范围内。${NC}"
        echo "正常: I/O等待时间在正常范围内。" >> "$ANALYSIS_FILE"
    fi
}

# 分析系统负载趋势
analyze_load_trend() {
    echo -e "\n${BLUE}系统负载趋势分析:${NC}"
    echo "\n系统负载趋势分析:" >> "$ANALYSIS_FILE"
    
    local load_values=()
    local timestamps=()
    local i=0
    
    for file in "${REPORT_FILES[@]}"; do
        local timestamp=$(echo "$file" | grep -o '[0-9]\{8\}_[0-9]\{6\}')
        local formatted_time=$(date -d "${timestamp:0:8} ${timestamp:9:2}:${timestamp:11:2}:${timestamp:13:2}" "+%Y-%m-%d %H:%M:%S" 2>/dev/null || echo "$timestamp")
        local load_avg=$(extract_load_avg "$file")
        
        if [ -n "$load_avg" ]; then
            load_values[$i]=$load_avg
            timestamps[$i]=$formatted_time
            i=$((i+1))
        fi
    done
    
    # 打印系统负载趋势
    echo -e "时间戳\t\t系统负载"
    echo "时间戳\t\t系统负载" >> "$ANALYSIS_FILE"
    
    for ((j=0; j<i; j++)); do
        echo -e "${timestamps[$j]}\t${load_values[$j]}"
        echo "${timestamps[$j]}\t${load_values[$j]}" >> "$ANALYSIS_FILE"
    done
    
    # 计算平均值和最大值
    local sum=0
    local max=0
    local max_time=""
    
    for ((j=0; j<i; j++)); do
        sum=$(echo "$sum + ${load_values[$j]}" | bc)
        if (( $(echo "${load_values[$j]} > $max" | bc -l) )); then
            max=${load_values[$j]}
            max_time=${timestamps[$j]}
        fi
    done
    
    local avg=$(echo "scale=2; $sum / $i" | bc)
    local cpu_cores=$(nproc)
    
    echo -e "\n平均系统负载: ${avg}"
    echo -e "最高系统负载: ${max} (${max_time})"
    echo -e "CPU核心数: ${cpu_cores}"
    
    echo "\n平均系统负载: ${avg}" >> "$ANALYSIS_FILE"
    echo "最高系统负载: ${max} (${max_time})" >> "$ANALYSIS_FILE"
    echo "CPU核心数: ${cpu_cores}" >> "$ANALYSIS_FILE"
    
    # 分析系统负载趋势
    if (( $(echo "$max > $cpu_cores * 2" | bc -l) )); then
        echo -e "${RED}警告: 检测到系统负载峰值超过CPU核心数的2倍，系统可能严重过载。${NC}"
        echo "警告: 检测到系统负载峰值超过CPU核心数的2倍，系统可能严重过载。" >> "$ANALYSIS_FILE"
    elif (( $(echo "$avg > $cpu_cores" | bc -l) )); then
        echo -e "${YELLOW}警告: 平均系统负载超过CPU核心数，系统负载较高。${NC}"
        echo "警告: 平均系统负载超过CPU核心数，系统负载较高。" >> "$ANALYSIS_FILE"
    else
        echo -e "${GREEN}正常: 系统负载在正常范围内。${NC}"
        echo "正常: 系统负载在正常范围内。" >> "$ANALYSIS_FILE"
    fi
}

# 综合分析系统性能
analyze_overall_performance() {
    echo -e "\n${BLUE}综合性能分析:${NC}"
    echo "\n综合性能分析:" >> "$ANALYSIS_FILE"
    
    local bottlenecks=0
    local bottleneck_report=""
    
    # 获取最新报告的性能指标
    local latest_file=${REPORT_FILES[0]}
    local cpu_usage=$(extract_cpu_usage "$latest_file")
    local mem_usage=$(extract_mem_usage "$latest_file")
    local disk_usage=$(extract_disk_usage "$latest_file")
    local io_wait=$(extract_io_wait "$latest_file")
    local load_avg=$(extract_load_avg "$latest_file")
    local cpu_cores=$(nproc)
    
    # 检查CPU瓶颈
    if (( $(echo "$cpu_usage > 80" | bc -l 2>/dev/null || echo "0") )); then
        bottlenecks=$((bottlenecks + 1))
        bottleneck_report+="- CPU使用率过高 (${cpu_usage}%)\n"
    fi
    
    # 检查内存瓶颈
    if (( $(echo "$mem_usage > 80" | bc -l 2>/dev/null || echo "0") )); then
        bottlenecks=$((bottlenecks + 1))
        bottleneck_report+="- 内存使用率过高 (${mem_usage}%)\n"
    fi
    
    # 检查磁盘空间瓶颈
    if (( $(echo "$disk_usage > 80" | bc -l 2>/dev/null || echo "0") )); then
        bottlenecks=$((bottlenecks + 1))
        bottleneck_report+="- 磁盘空间使用率过高 (${disk_usage}%)\n"
    fi
    
    # 检查I/O瓶颈
    if (( $(echo "$io_wait > 10" | bc -l 2>/dev/null || echo "0") )); then
        bottlenecks=$((bottlenecks + 1))
        bottleneck_report+="- I/O等待时间过高 (${io_wait}%)\n"
    fi
    
    # 检查负载瓶颈
    if (( $(echo "$load_avg > $cpu_cores" | bc -l 2>/dev/null || echo "0") )); then
        bottlenecks=$((bottlenecks + 1))
        bottleneck_report+="- 系统负载过高 (${load_avg})\n"
    fi
    
    # 输出综合分析结果
    if [ $bottlenecks -eq 0 ]; then
        echo -e "${GREEN}系统性能良好，未检测到明显的性能瓶颈。${NC}"
        echo "系统性能良好，未检测到明显的性能瓶颈。" >> "$ANALYSIS_FILE"
    else
        echo -e "${YELLOW}检测到 $bottlenecks 个可能的系统性能瓶颈:${NC}"
        echo -e "$bottleneck_report"
        
        echo "检测到 $bottlenecks 个可能的系统性能瓶颈:" >> "$ANALYSIS_FILE"
        echo -e "$bottleneck_report" >> "$ANALYSIS_FILE"
        
        echo -e "\n${BLUE}性能优化建议:${NC}"
        echo "\n性能优化建议:" >> "$ANALYSIS_FILE"
        
        if (( $(echo "$cpu_usage > 80" | bc -l 2>/dev/null || echo "0") )); then
            echo -e "1. CPU优化:"
            echo -e "   - 检查并终止不必要的CPU密集型进程"
            echo -e "   - 考虑优化应用程序代码"
            echo -e "   - 如果是长期问题，考虑升级CPU"
            
            echo "1. CPU优化:" >> "$ANALYSIS_FILE"
            echo "   - 检查并终止不必要的CPU密集型进程" >> "$ANALYSIS_FILE"
            echo "   - 考虑优化应用程序代码" >> "$ANALYSIS_FILE"
            echo "   - 如果是长期问题，考虑升级CPU" >> "$ANALYSIS_FILE"
        fi
        
        if (( $(echo "$mem_usage > 80" | bc -l 2>/dev/null || echo "0") )); then
            echo -e "2. 内存优化:"
            echo -e "   - 检查并终止内存泄漏的进程"
            echo -e "   - 调整应用程序内存使用参数"
            echo -e "   - 增加物理内存或交换空间"
            
            echo "2. 内存优化:" >> "$ANALYSIS_FILE"
            echo "   - 检查并终止内存泄漏的进程" >> "$ANALYSIS_FILE"
            echo "   - 调整应用程序内存使用参数" >> "$ANALYSIS_FILE"
            echo "   - 增加物理内存或交换空间" >> "$ANALYSIS_FILE"
        fi
        
        if (( $(echo "$disk_usage > 80" | bc -l 2>/dev/null || echo "0") )) || (( $(echo "$io_wait > 10" | bc -l 2>/dev/null || echo "0") )); then
            echo -e "3. 磁盘优化:"
            echo -e "   - 清理不必要的文件"
            echo -e "   - 检查并优化I/O密集型进程"
            echo -e "   - 考虑使用SSD或RAID提高I/O性能"
            echo -e "   - 优化文件系统和磁盘调度算法"
            
            echo "3. 磁盘优化:" >> "$ANALYSIS_FILE"
            echo "   - 清理不必要的文件" >> "$ANALYSIS_FILE"
            echo "   - 检查并优化I/O密集型进程" >> "$ANALYSIS_FILE"
            echo "   - 考虑使用SSD或RAID提高I/O性能" >> "$ANALYSIS_FILE"
            echo "   - 优化文件系统和磁盘调度算法" >> "$ANALYSIS_FILE"
        fi
        
        if (( $(echo "$load_avg > $cpu_cores" | bc -l 2>/dev/null || echo "0") )); then
            echo -e "4. 系统负载优化:"
            echo -e "   - 检查并优化后台任务调度"
            echo -e "   - 减少并发进程数量"
            echo -e "   - 考虑负载均衡或分布式处理"
            
            echo "4. 系统负载优化:" >> "$ANALYSIS_FILE"
            echo "   - 检查并优化后台任务调度" >> "$ANALYSIS_FILE"
            echo "   - 减少并发进程数量" >> "$ANALYSIS_FILE"
            echo "   - 考虑负载均衡或分布式处理" >> "$ANALYSIS_FILE"
        fi
    fi
}

# 主函数
main() {
    # 分析各个性能指标趋势
    analyze_cpu_trend
    analyze_mem_trend
    analyze_disk_trend
    analyze_io_wait_trend
    analyze_load_trend
    
    # 综合分析系统性能
    analyze_overall_performance
    
    echo -e "\n${GREEN}分析完成！${NC}"
    echo -e "详细分析报告已保存到: $ANALYSIS_FILE"
}

# 执行主函数
main